(module (memory $rael.memory (export "memory") 1)
 (func $rael.compare_int (param $a i32) (param $b i32) (result i32)
  (if (result i32) (i32.eq (local.get $a) (local.get $b))
   (then (i32.const 0))
   (else
    (if (result i32) (i32.lt_s (local.get $a) (local.get $b))
     (then (i32.const -1)) (else (i32.const 1))))))
 (table $rael.global funcref (elem))
 (func $fib.fn/2 (param $num/1 i32) (result i32) (local $n/3 i32)
  (local $acc1/4 i32) (local $acc2/5 i32) (local $x/13 i32)
  (block $join:2 (local.get $num/1) (i32.const 0) (i32.const 1)
   (local.set $acc2/5) (local.set $acc1/4) (local.set $n/3) (br $join:2))
  (loop $join:2 (result i32) (local.get $n/3) (local.set $x/13)
   (block $join:12
    (block $join:11
     (block $join:10 (local.get $x/13) (i32.const 0) (i32.eq)
      (if (result i32) (then (br $join:10))
       (else (local.get $x/13) (i32.const 1) (i32.eq)
        (if (result i32) (then (br $join:11)) (else (br $join:12)))))
      (return))
     (local.get $acc1/4) (return))
    (local.get $acc2/5) (return))
   (local.get $n/3) (i32.const 1) (i32.sub) (local.get $acc2/5)
   (local.get $acc1/4) (local.get $acc2/5) (i32.add) (local.set $acc2/5)
   (local.set $acc1/4) (local.set $n/3) (br $join:2)))
 (func $test.fn/1 (export "test") (param $n/6 i32) (param $count/7 i32)
  (result i32) (local $i/14 i32) (local $res/15 i32) (i32.const 0)
  (local.set $i/14) (i32.const 0) (local.set $res/15)
  (block $block/17
   (loop $loop/16 (local.get $i/14) (local.get $count/7)
    (call $rael.compare_int) (i32.const 0) (i32.lt_s)
    (if
     (then (local.get $n/6) (call $fib.fn/2) (local.set $res/15)
      (local.get $i/14) (i32.const 1) (i32.add) (local.set $i/14)
      (i32.const 0) (br $loop/16)))))
  (local.get $res/15))
 (func $*init*/3) (export "_start" (func $*init*/3)))